<HTML>
<BODY>
<PRE>

<B>_LIBC_EfiExit</B> 	     Libc    Manual 	       <B>LIBC_EfiExit</B>


</PRE>
<H2>NAME</H2><PRE>
     <B>_LIBC_EfiExit</B> - perform normal program termination

</PRE>
<H2>SYNOPSIS</H2><PRE>
     <B>#include</B> <B>&lt;atk_libc.h&gt;</B>

     <I>void</I>
     <B>_LIBC_EfiExit</B>(<I>EFI_STATUS</I> <I>Status</I>, <I>UINTN</I> <I>DataSize</I>, <I>CHAR16</I>, <I>*ExitData</I>)

</PRE>
<H2>DESCRIPTION</H2><PRE>
     <B>_LIBC_EfiExit</B>() terminates a process and retuns EFI specific exit
     parameters to the parent.  As with <B>exit(3)</B>, it performs the following
     functions in the order listed:

	   1.	Call the functions registered with the <B>atexit(3)</B> function, in
		the reverse order of their registration.

	   2.	Flush all open output streams.

	   3.	Close all open streams.

     Unlike <B>exit</B>(), it allows a full <I>EFI_STATUS</I> type (as opposed to <I>int</I>) and
     exit data to be returned to the parent.


</PRE>
<H2>RETURN VALUES</H2><PRE>
     The <B>_LIBC_EfiExit</B>() function never returns.

</PRE>
<H2>SEE ALSO</H2><PRE>
     <B>exit(3)</B>

</PRE>
</BODY>
</HTML>
